From 6abd9271a337c0edbcbd1929afd0ebcc01978017 Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild2.aw" Date: Mon, 12 Feb 2007 10:10:37 -0700 Subject: [PATCH] [IA64] Fix save/restore bug DCR.dm fix, in case v->arch.privregs is NULL Signed-off-by: Anthony Xu --- xen/arch/ia64/linux-xen/setup.c | 3 +-- xen/arch/ia64/xen/domain.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/xen/arch/ia64/linux-xen/setup.c b/xen/arch/ia64/linux-xen/setup.c index 548419b966..c7744eddd4 100644 --- a/xen/arch/ia64/linux-xen/setup.c +++ b/xen/arch/ia64/linux-xen/setup.c @@ -862,8 +862,7 @@ cpu_init (void) * be fine). */ #ifdef XEN - ia64_setreg(_IA64_REG_CR_DCR, ( IA64_DCR_DP | IA64_DCR_DK | IA64_DCR_DX | IA64_DCR_DR - | IA64_DCR_PP | IA64_DCR_DA | IA64_DCR_DD | IA64_DCR_LC)); + ia64_setreg(_IA64_REG_CR_DCR, IA64_DEFAULT_DCR_BITS); #else ia64_setreg(_IA64_REG_CR_DCR, ( IA64_DCR_DP | IA64_DCR_DK | IA64_DCR_DX | IA64_DCR_DR | IA64_DCR_DA | IA64_DCR_DD | IA64_DCR_LC)); diff --git a/xen/arch/ia64/xen/domain.c b/xen/arch/ia64/xen/domain.c index 9c21d02949..c786a9d6e8 100644 --- a/xen/arch/ia64/xen/domain.c +++ b/xen/arch/ia64/xen/domain.c @@ -581,7 +581,7 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c) er->dtrs[i].rid = v->arch.dtrs[i].rid; } er->event_callback_ip = v->arch.event_callback_ip; - er->dcr = PSCB(v,dcr); + er->dcr = v->arch.privregs ? PSCB(v,dcr) : 0; er->iva = v->arch.iva; } @@ -617,7 +617,6 @@ int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c) er->dtrs[i].rid); } v->arch.event_callback_ip = er->event_callback_ip; - PSCB(v,dcr) = er->dcr; v->arch.iva = er->iva; } -- 2.30.2